package mysql8学习.高级.第06章_索引的数据结构;

/**
 * 没有索引前 进行一个进准查询
 *
 * 1.在一个页中的查找
 * 假设目前表中的记录比较少,所有的记录都可以被存放到一个页中，
 * 在查找记录的时候可以根据搜索条件的不同
 * 分为两种情况:
 *  ●以主键为搜索条件
 *   可以在页目录中使用二分法快速定位到对应的槽，
 *   然后再遍历该槽对应分组中的记录即可快速找到指定的记录。
 *  ●以其他列作为搜索条件
 *   因为在数据页中并没有对非主键列建立所谓的页目录，所以我们无法通过二分法快速定位相应的槽。
 *   这种情况下只能从最小记录开始依次遍历单链表中的每条记录，然后对比每条记录是不是符合搜索条件。
 *   很显然，这种查找的效率是非常低的。
 *
 * 2.在很多页中查找
 * 大部分情况下我们表中存放的记录都是非常多的，需要好多的数据页来存储这些记录。
 * 在很多页中查找记录的话可以分为两个步骤:
 *  ● 定位到记录所在的页。
 *  ● 从所在的页内中查找相应的记录。
 *    在没有索引的情况下，不论是根据主键列或者其他列的值进行查找，
 *    由于我们并不能快速的定位到记录所在的页，
 *    所以只能从第一个页沿着双向链表一直往下找，
 *    在每一个页中根据我们上面的查找方式去查找指定的记录。
 *    因为要遍历所有的数据页，所以这种方式显然是超级耗时的。
 *
 * 如果一个表有一亿条记录呢?    此时索引应运而生。
 *
 */

public class C_没有索引前 {
}
